<?php 
//月考-技能 B  
 //1．李雷存钱罐里面有3中规格的硬币，一分、二分、五分。李雷现在想把这些零钱整理成一角，请问一共有多少种分配方式。
 //斐波那契额
  function  unknown($num){
     if ($num==0||$num==1) {
       return 1;
     }else{
       return unknown($num-2)+unknown($num-1);
     }
  }

// echo  unknown(3);


  //2．将十进制数字转换为八进制数字。$n为十进制数字，例如10。
  function decimalToOctal($n){
   static $nbm ="" ;  //静态
       $temp = floor($n/8); //除以8
       $now =floor($n-($temp*8));  //总数 减去 除数*8 = 余数
       if ($n<=0) { //总数小于 or 等于0  结束
         
          for ($i=strlen($nbm)-1; $i >=0 ; $i--) {  //d倒叙输出
             echo  $nbm[$i];
          }
       }else{
          // echo $now;   
        $nbm .=$now; //添加到静态变量
       decimalToOctal($temp);
 
       }

  }
// echo decimalToOctal(2456);
  //3．围棋棋盘是19*19，总共361个交叉点。现在韩梅梅想从左下角开始，每次移动一步，只能向右或向上走交叉点。请问有多少种走法
 //递归
 function day20_2($x,$y){
    if($x==0 && $y==0)
      return 0;
    if ($x == 0 || $y == 0)
      return 1;.
    $total =  day20_2($x - 1, $y) +  day20_2($x, $y - 1);
    return $total;
  }
  // echo day20_2(19,3); //1540

  //围棋棋盘非递归
   function move2($x,$y){
    for($i = 0; $i <= $x; $i++){
      $f[$i][0] = 1;
    }

    for($i = 0; $i <= $y; $i++ ){
      $f[0][$i] = 1;
    }
    //  print_r( $f);
    // die();
    //print_r($f);exit;
    for($i = 1; $i <= $x; $i++){
      for($j = 1; $j <= $y; $j++){
        $f[$i][$j] = $f[$i-1][$j] + $f[$i][$j-1];
      }
    }
    print_r($f[$x][$y]);
  }
  // move2(2,2);
 ?>
 